<html>
<head><meta charset="utf-8"><title>major performance regression between Rust 1.50 and #83027 · t-compiler/performance · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/index.html">t-compiler/performance</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html">major performance regression between Rust 1.50 and #83027</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="230046268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230046268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230046268">(Mar 12 2021 at 15:21)</a>:</h4>
<p>meanwhile I was taking a look at the meeting I've tried to reproduce the ripgrep issue and I wasn't able</p>



<a name="230046295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230046295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230046295">(Mar 12 2021 at 15:21)</a>:</h4>
<div class="codehilite"><pre><span></span><code>[santiago@galago rg_test]$ time ./rg-stable_1.50  -c --no-mmap -a &#39;[a-z]&#39; subtitles2016-sample.en
31813587

real    0m1.432s
user    0m1.237s
sys 0m0.161s
[santiago@galago rg_test]$ time ./rg-beta_1.51 -c --no-mmap -a &#39;[a-z]&#39; subtitles2016-sample.en
31813587

real    0m1.497s
user    0m1.396s
sys 0m0.100s
</code></pre></div>



<a name="230046367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230046367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230046367">(Mar 12 2021 at 15:22)</a>:</h4>
<p>as <span class="user-mention" data-user-id="352985">@tm</span> said, I was not able to reproduce</p>



<a name="230046396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230046396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230046396">(Mar 12 2021 at 15:22)</a>:</h4>
<p>compiled on Linux using <code>cargo build --release</code></p>



<a name="230046428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230046428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230046428">(Mar 12 2021 at 15:22)</a>:</h4>
<p>unsure what have you tried <span class="user-mention" data-user-id="352985">@tm</span></p>



<a name="230046554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230046554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230046554">(Mar 12 2021 at 15:23)</a>:</h4>
<p>gonna try debug mode just in case</p>



<a name="230046823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230046823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230046823">(Mar 12 2021 at 15:24)</a>:</h4>
<p>Another thing that might be relevant is:<code>--features=simd-accel</code> / <code>RUSTFLAGS=-C target-cpu=native</code>, let me ask in the issue.</p>



<a name="230047178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047178">(Mar 12 2021 at 15:27)</a>:</h4>
<p>right, I'm assuming that <span class="user-mention" data-user-id="222471">@BurntSushi</span> is using some feature or some flag when compiling rg</p>



<a name="230047218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047218">(Mar 12 2021 at 15:27)</a>:</h4>
<p>in debug mode ...</p>



<a name="230047226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047226">(Mar 12 2021 at 15:27)</a>:</h4>
<div class="codehilite"><pre><span></span><code>[santiago@galago rg_test]$ time ./rg-stable_1.50  -c --no-mmap -a &#39;[a-z]&#39; subtitles2016-sample.en
31813587

real    0m50.915s
user    0m50.684s
sys 0m0.184s
[santiago@galago rg_test]$ time ./rg-beta_1.51  -c --no-mmap -a &#39;[a-z]&#39; subtitles2016-sample.en
31813587

real    0m53.960s
user    0m53.670s
sys 0m0.214s
</code></pre></div>



<a name="230047448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047448">(Mar 12 2021 at 15:28)</a>:</h4>
<p>they advice that so I guess they're using that</p>



<a name="230047455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047455">(Mar 12 2021 at 15:28)</a>:</h4>
<div class="codehilite"><pre><span></span><code>$ git clone https://github.com/BurntSushi/ripgrep
$ cd ripgrep
$ cargo build --release
$ ./target/release/rg --version
0.1.3
</code></pre></div>



<a name="230047457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047457">(Mar 12 2021 at 15:28)</a>:</h4>
<p>and</p>



<a name="230047486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047486">(Mar 12 2021 at 15:28)</a>:</h4>
<div class="codehilite"><pre><span></span><code>RUSTFLAGS=&quot;-C target-cpu=native&quot; cargo build --release --features &#39;simd-accel&#39;
</code></pre></div>



<a name="230047729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047729">(Mar 12 2021 at 15:30)</a>:</h4>
<p>it doesn't even compile on stable :/</p>



<a name="230047732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047732">(Mar 12 2021 at 15:30)</a>:</h4>
<div class="codehilite"><pre><span></span><code>error[E0554]: `#![feature]` may not be used on the stable release channel
   --&gt; /home/santiago/.cargo/registry/src/github.com-1ecc6299db9ec823/packed_simd_2-0.3.4/src/lib.rs:202:1
    |
202 | / #![feature(
203 | |     repr_simd,
204 | |     rustc_attrs,
205 | |     const_fn,
...   |
215 | |     llvm_asm
216 | | )]
    | |__^
</code></pre></div>



<a name="230047960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230047960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230047960">(Mar 12 2021 at 15:31)</a>:</h4>
<p>I was compiling master, they may also be compiling some other branch maybe?</p>



<a name="230054751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230054751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230054751">(Mar 12 2021 at 16:07)</a>:</h4>
<p>Definitely make sure to match up the nightly versions.</p>



<a name="230054804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230054804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230054804">(Mar 12 2021 at 16:07)</a>:</h4>
<p>there has been a _ton_ of movement in backend lately due to the LLVM12 bump.</p>



<a name="230054868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230054868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230054868">(Mar 12 2021 at 16:07)</a>:</h4>
<p>it reproduced on beta for <span class="user-mention" data-user-id="222471">@BurntSushi</span> though, so presumably unrelated to llvm 12</p>



<a name="230058203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230058203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230058203">(Mar 12 2021 at 16:26)</a>:</h4>
<p>thanks for looking into this! i posted an update: <a href="https://github.com/rust-lang/rust/issues/83027#issuecomment-797598711">https://github.com/rust-lang/rust/issues/83027#issuecomment-797598711</a></p>
<p>TL;DR - i was indeed setting <code>target-cpu=native</code> and that appears to be required to reproduce the regression. realizing that, i tried my smaller example and was able to reproduce it there as well. so we no longer need to worry about ripgrep for the reproduction specifically. but note that i used beta! not nightly.</p>



<a name="230058492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230058492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230058492">(Mar 12 2021 at 16:28)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116266">Santiago Pastorino</span> <a href="#narrow/stream/247081-t-compiler.2Fperformance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027/near/230047729">said</a>:</p>
<blockquote>
<p>it doesn't even compile on stable :/</p>
</blockquote>
<p>yeah the <code>simd-accel</code> feature never has. the README notes that you need nightly. these days, it only enables a bit of extra SIMD support for UTF-16 transcoding. everything else converted to <code>std::arch</code> once that became stable and uses dynamic CPU feature detection. so it no longer needs extra features enabled (or even <code>target-cpu=native</code>) to work.</p>



<a name="230064171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230064171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230064171">(Mar 12 2021 at 17:03)</a>:</h4>
<p>re: <a href="https://github.com/rust-lang/rust/issues/83027#issuecomment-797623039">https://github.com/rust-lang/rust/issues/83027#issuecomment-797623039</a> build-std is a cargo flag not a rustc one <a href="https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std">https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std</a></p>



<a name="230065560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230065560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230065560">(Mar 12 2021 at 17:12)</a>:</h4>
<p>(I can repro on skylake, -Zbuild-std does not seem to fix it for me)</p>



<a name="230065641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230065641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230065641">(Mar 12 2021 at 17:13)</a>:</h4>
<p>Hm, does the called function that's not being inlined anymore have anything of the <code>#[target_feature(enable="...")]</code> sort on it?</p>



<a name="230065931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230065931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230065931">(Mar 12 2021 at 17:15)</a>:</h4>
<p>was it this ? <a href="https://github.com/rust-lang/stdarch/blob/a06cb4ca550935349f662f7711a2ae46dca796c7/crates/core_arch/src/x86/mod.rs#L458">https://github.com/rust-lang/stdarch/blob/a06cb4ca550935349f662f7711a2ae46dca796c7/crates/core_arch/src/x86/mod.rs#L458</a></p>



<a name="230066107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230066107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230066107">(Mar 12 2021 at 17:16)</a>:</h4>
<p>Do you reproduce it with <code>-Ctarget-cpu=native</code>? Does it reproduce with <code>-Ctarget-cpu=skylake</code> as well?</p>



<a name="230066170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230066170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230066170">(Mar 12 2021 at 17:17)</a>:</h4>
<p>I reproduce with <code>native</code>, I'll try with <code>skylake</code> explicitly</p>



<a name="230066346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230066346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230066346">(Mar 12 2021 at 17:18)</a>:</h4>
<p>doesn't repro with <code>skylake</code></p>



<a name="230066548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230066548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230066548">(Mar 12 2021 at 17:20)</a>:</h4>
<p>makes <a href="https://github.com/rust-lang/rust/issues/80749">#80749</a> more likely right ?</p>



<a name="230066708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230066708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230066708">(Mar 12 2021 at 17:21)</a>:</h4>
<p>yes.</p>



<a name="230067904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230067904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230067904">(Mar 12 2021 at 17:30)</a>:</h4>
<p>Could you check what features it detects?</p>
<div class="codehilite"><pre><span></span><code>gdb --args rustc -Ctarget-cpu=native a.rs
(gdb) b LLVMRustCreateTargetMachine
(gdb) run
(gdb) set print elements 0
(gdb) x/s $rdx
</code></pre></div>



<a name="230068309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230068309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230068309">(Mar 12 2021 at 17:33)</a>:</h4>
<div class="codehilite"><pre><span></span><code>0x7ffff3454300: &quot;+sse2,-tsxldtrk,+cx16,+sahf,-tbm,-avx512ifma,-sha,-gfni,-fma4,-vpclmulqdq,+prfchw,+bmi2,-cldemote,+fsgsbase,-ptwrite,-amx-tile,-avx512bf16,+popcnt,+aes,-avx512bitalg,-movdiri,+xsaves,-avx512er,+xsavec,-avx512vnni,-amx-bf16,-avx512vpopcntdq,-pconfig,-clwb,-avx512f,-clzero,-pku,+mmx,-lwp,-rdpid,-xop,+rdseed,-waitpkg,-movdir64b,-sse4a,-avx512bw,+clflushopt,+xsave,-avx512vbmi2,+64bit,-avx512vl,-serialize,+invpcid,-avx512cd,+avx,-vaes,+cx8,+fma,+rtm,+bmi,-enqcmd,+rdrnd,-mwaitx,+sse4.1,+sse4.2,+avx2,+fxsr,-wbnoinvd,+sse,+lzcnt,+pclmul,-prefetchwt1,+f16c,+ssse3,-sgx,-shstk,+cmov,-avx512vbmi,-amx-int8,+movbe,-avx512vp2intersect,+xsaveopt,-avx512dq,+adx,-avx512pf,+sse3&quot;
</code></pre></div>



<a name="230068816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230068816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230068816">(Mar 12 2021 at 17:36)</a>:</h4>
<p>which _seems_ acceptable for AVX __m256i ?</p>



<a name="230069521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230069521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230069521">(Mar 12 2021 at 17:41)</a>:</h4>
<p>Hmm, settings those manually still doesn't seem to be sufficient to reproduce the issue.</p>



<a name="230073236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230073236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230073236">(Mar 12 2021 at 18:05)</a>:</h4>
<p>if somebody could bisect this that would be useful too.</p>



<a name="230073380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230073380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230073380">(Mar 12 2021 at 18:06)</a>:</h4>
<p>a more minimal repro would be useful for that as well, and just inspecting whether the offending functions are inlined or not</p>



<a name="230076331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230076331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230076331">(Mar 12 2021 at 18:29)</a>:</h4>
<p>since <code>m256iExt</code> is a private trait it's a bit tricky, but I think this will do: using one of the other intrinsics using one of the private trait's functions which are not inlined</p>



<a name="230076621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230076621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230076621">(Mar 12 2021 at 18:31)</a>:</h4>
<p>github gist (and therefore the playground sharing) are not working ATM so: </p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="cp">#[cfg(target_arch = </span><span class="s">"x86"</span><span class="cp">)]</span><span class="w"></span>
<span class="k">use</span><span class="w"> </span><span class="n">std</span>::<span class="n">arch</span>::<span class="n">x86</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>

<span class="cp">#[cfg(target_arch = </span><span class="s">"x86_64"</span><span class="cp">)]</span><span class="w"></span>
<span class="k">use</span><span class="w"> </span><span class="n">std</span>::<span class="n">arch</span>::<span class="n">x86_64</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>

<span class="k">use</span><span class="w"> </span><span class="n">std</span>::<span class="n">intrinsics</span>::<span class="n">transmute</span><span class="p">;</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="cp">#[target_feature(enable = </span><span class="s">"avx2"</span><span class="cp">)]</span><span class="w"></span>
<span class="w">    </span><span class="k">unsafe</span><span class="w"> </span><span class="k">fn</span> <span class="nf">test</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_mm256_set_epi32</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_mm256_set_epi32</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span><span class="w"></span>

<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">e</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_mm256_set_epi32</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">);</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_mm256_add_epi32</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">);</span><span class="w"></span>

<span class="w">        </span><span class="n">assert_eq_m256i</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">);</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>

<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="fm">is_x86_feature_detected!</span><span class="p">(</span><span class="s">"avx2"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="k">unsafe</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">test</span><span class="p">()</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="fm">panic!</span><span class="p">(</span><span class="s">"avx2 feature not detected"</span><span class="p">);</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="cp">#[target_feature(enable = </span><span class="s">"avx"</span><span class="cp">)]</span><span class="w"></span>
<span class="k">pub</span><span class="w"> </span><span class="k">unsafe</span><span class="w"> </span><span class="k">fn</span> <span class="nf">assert_eq_m256i</span><span class="p">(</span><span class="n">a</span>: <span class="nc">__m256i</span><span class="p">,</span><span class="w"> </span><span class="n">b</span>: <span class="nc">__m256i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="fm">assert_eq!</span><span class="p">(</span><span class="n">transmute</span>::<span class="o">&lt;</span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="kt">u64</span><span class="p">;</span><span class="w"> </span><span class="mi">4</span><span class="p">]</span><span class="o">&gt;</span><span class="p">(</span><span class="n">a</span><span class="p">),</span><span class="w"> </span><span class="n">transmute</span>::<span class="o">&lt;</span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="kt">u64</span><span class="p">;</span><span class="w"> </span><span class="mi">4</span><span class="p">]</span><span class="o">&gt;</span><span class="p">(</span><span class="n">b</span><span class="p">))</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="230076803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230076803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230076803">(Mar 12 2021 at 18:32)</a>:</h4>
<p>as expected, not inlined with the native target-cpu:</p>
<div class="codehilite"><pre><span></span><code>lqd@oxygen:memchr-perf-regression$ rm regress*
lqd@oxygen:memchr-perf-regression$ cargo build --release &amp;&amp; cp target/release/memchr-perf-regression ./regress
   Compiling memchr-perf-regression v0.1.0 (/mnt/d/work/rust/youpi/tmp/memchr-perf-regression)
    Finished release [optimized] target(s) in 0.77s
lqd@oxygen:memchr-perf-regression$ RUSTFLAGS=&quot;-C target-cpu=skylake&quot; cargo build --release &amp;&amp; cp target/release/memchr-perf-regression ./regress-skylake
   Compiling memchr-perf-regression v0.1.0 (/mnt/d/work/rust/youpi/tmp/memchr-perf-regression)
    Finished release [optimized] target(s) in 0.55s
lqd@oxygen:memchr-perf-regression$ RUSTFLAGS=&quot;-C target-cpu=native&quot; cargo build --release &amp;&amp; cp target/release/memchr-perf-regression ./regress-native
   Compiling memchr-perf-regression v0.1.0 (/mnt/d/work/rust/youpi/tmp/memchr-perf-regression)
    Finished release [optimized] target(s) in 0.56s
lqd@oxygen:memchr-perf-regression$ objdump -d regress| grep as_i32x8
lqd@oxygen:memchr-perf-regression$ objdump -d regress-skylake| grep as_i32x8
lqd@oxygen:memchr-perf-regression$ objdump -d regress-native| grep as_i32x8
0000000000006960 &lt;_ZN4core9core_arch3x868m256iExt8as_i32x817h6f0a02a3bdc3d3e7E&gt;:
    6ade:       e8 7d fe ff ff          callq  6960 &lt;_ZN4core9core_arch3x868m256iExt8as_i32x817h6f0a02a3bdc3d3e7E&gt;
    6b0a:       e8 51 fe ff ff          callq  6960 &lt;_ZN4core9core_arch3x868m256iExt8as_i32x817h6f0a02a3bdc3d3e7E&gt;
</code></pre></div>



<a name="230084711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230084711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230084711">(Mar 12 2021 at 19:31)</a>:</h4>
<p>That's still pretty hard to reason about since the meat of the issue is inside core (it's one of those set or add functions that's calling the as_i32x8 right?</p>



<a name="230084742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230084742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230084742">(Mar 12 2021 at 19:31)</a>:</h4>
<p>I do have a hunch in what would be necessary to fix it tho.</p>



<a name="230084866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230084866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230084866">(Mar 12 2021 at 19:32)</a>:</h4>
<p>I think what's happening is that that as_i32x8 is getting a _wider_ feature set than the functions that call it.</p>



<a name="230084997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230084997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230084997">(Mar 12 2021 at 19:33)</a>:</h4>
<p>(add/set being just avx2 and the other functions being "everything native cpu supports")</p>



<a name="230086250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230086250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230086250">(Mar 12 2021 at 19:43)</a>:</h4>
<p>ah interesting yeah</p>



<a name="230086342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230086342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230086342">(Mar 12 2021 at 19:43)</a>:</h4>
<p>indeed stdarch's <code>_mm256_add_epi32</code> calls <code>as_i32x8</code> on the two m256i</p>



<a name="230086456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230086456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230086456">(Mar 12 2021 at 19:44)</a>:</h4>
<p>here <a href="https://github.com/rust-lang/stdarch/blob/35595690d7881b20bd419875c2b64f284534d237/crates/core_arch/src/x86/avx2.rs#L80-L82">https://github.com/rust-lang/stdarch/blob/35595690d7881b20bd419875c2b64f284534d237/crates/core_arch/src/x86/avx2.rs#L80-L82</a></p>



<a name="230086504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230086504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230086504">(Mar 12 2021 at 19:45)</a>:</h4>
<p>modulo the actual revision of stdarch used in the tested rustcs/libcore (3 months ago or so)</p>



<a name="230086575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230086575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230086575">(Mar 12 2021 at 19:45)</a>:</h4>
<p>at least I can bisect with that, but it's currently downloading CI artifacts at 30kb/s so that'll take a while</p>



<a name="230086650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230086650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230086650">(Mar 12 2021 at 19:46)</a>:</h4>
<p>it's in nightly-2021-01-10 which is the first with <a href="https://github.com/rust-lang/rust/issues/80749">#80749</a> though</p>



<a name="230088834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230088834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230088834">(Mar 12 2021 at 20:02)</a>:</h4>
<p><span class="user-mention" data-user-id="123586">@nagisa</span> do you think we have to minimize stdarch for this ?</p>



<a name="230090612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230090612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230090612">(Mar 12 2021 at 20:14)</a>:</h4>
<p>(if we don't need to minimize it, you can have a direct stdarch dependency, say at rev <a href="https://github.com/rust-lang/rust/commit/9c732a56f67f54d12a0b4fd99993154906c95ea6">9c732a56f67f54d12a0b4fd99993154906c95ea6</a> which is the one in libcore, and the same function will work equally:</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">use</span><span class="w"> </span><span class="n">core_arch</span>::<span class="n">arch</span>::<span class="n">x86_64</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">unsafe</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_mm256_set_epi32</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_mm256_set_epi32</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span><span class="w"></span>

<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_mm256_add_epi32</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">);</span><span class="w"></span>
<span class="w">        </span><span class="fm">println!</span><span class="p">(</span><span class="s">"r: {:?}"</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">);</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<p>)</p>



<a name="230091172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230091172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230091172">(Mar 12 2021 at 20:18)</a>:</h4>
<p>Could you share optimized LLVM IR, where those functions are still not inlined?</p>



<a name="230091979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230091979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230091979">(Mar 12 2021 at 20:25)</a>:</h4>
<p><span class="user-mention" data-user-id="352985">@tm</span> something like <a href="https://gist.github.com/lqd/62f8590c4c0449ab9b7bdee09e0ecfb3">https://gist.github.com/lqd/62f8590c4c0449ab9b7bdee09e0ecfb3</a> ?</p>



<a name="230092483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230092483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230092483">(Mar 12 2021 at 20:27)</a>:</h4>
<p>Yes, thanks!</p>



<a name="230092537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230092537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230092537">(Mar 12 2021 at 20:27)</a>:</h4>
<p>sure, no problem :)</p>



<a name="230093053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230093053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230093053">(Mar 12 2021 at 20:31)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/6">#6</a> is the one of interest IIUC, and it doesn't have the target-feature that the other two intrinsics have</p>



<a name="230093127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230093127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230093127">(Mar 12 2021 at 20:31)</a>:</h4>
<p>that shouldn't be problematic, right ?</p>



<a name="230093700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230093700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230093700">(Mar 12 2021 at 20:35)</a>:</h4>
<p>No it shouldn't. Running opt on that inlines everything.</p>



<a name="230094068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230094068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230094068">(Mar 12 2021 at 20:38)</a>:</h4>
<p>I think we can just copy over some functions from there to make a self-container repro.</p>



<a name="230094124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230094124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230094124">(Mar 12 2021 at 20:39)</a>:</h4>
<p><code>opt</code> can't really be used here as a way of reproducing, because the "default" target-features get set on the targetmachine and are not reflected in the IR.</p>



<a name="230094143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230094143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230094143">(Mar 12 2021 at 20:39)</a>:</h4>
<p>I think you may need to set <code>-mattr=...</code> of all of the features?</p>



<a name="230094187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230094187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230094187">(Mar 12 2021 at 20:39)</a>:</h4>
<p>I'm hacking on this, will have something easier to work with soonish I think</p>



<a name="230094506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230094506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230094506">(Mar 12 2021 at 20:42)</a>:</h4>
<p>I can try minimizing stdarch more if you want; but mostly x86/mod with macros, sse, sse2, avx, avx2 are used in this case</p>



<a name="230094528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230094528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230094528">(Mar 12 2021 at 20:42)</a>:</h4>
<p>the rest can be commented out wholesale</p>



<a name="230095477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230095477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230095477">(Mar 12 2021 at 20:51)</a>:</h4>
<p><a href="https://godbolt.org/z/6fvoTP">https://godbolt.org/z/6fvoTP</a> here's a self-contained sample.</p>



<a name="230095665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230095665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230095665">(Mar 12 2021 at 20:52)</a>:</h4>
<p>you're too fast :)</p>



<a name="230096616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230096616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230096616">(Mar 12 2021 at 20:59)</a>:</h4>
<p>if we <code>#[target_feature]</code> everything, it's all inlined. same if we <code>#[inline(always)]</code> <code>as_i32x8</code> ...</p>



<a name="230096779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230096779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230096779">(Mar 12 2021 at 21:00)</a>:</h4>
<p>What confuses me the most is that <code>as_i32x8</code> does get inlined if you <code>#[inline(never)]</code> the <code>add</code> function.</p>



<a name="230096875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230096875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230096875">(Mar 12 2021 at 21:00)</a>:</h4>
<p><a href="https://godbolt.org/z/3vTv3s">https://godbolt.org/z/3vTv3s</a></p>



<a name="230097407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230097407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230097407">(Mar 12 2021 at 21:05)</a>:</h4>
<p>...</p>



<a name="230098045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230098045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230098045">(Mar 12 2021 at 21:10)</a>:</h4>
<p>everything's also inlined if we do <em>not</em> target_feature <code>test</code> ?</p>



<a name="230099264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230099264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230099264">(Mar 12 2021 at 21:19)</a>:</h4>
<p>Well, yeah, but we cannot do that in actuality.</p>



<a name="230099296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230099296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230099296">(Mar 12 2021 at 21:19)</a>:</h4>
<p>if we remove all of the <code>#[inline]</code> annotations everything works great too.</p>



<a name="230099510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230099510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230099510">(Mar 12 2021 at 21:21)</a>:</h4>
<p>yeah I know we can't remove it, but I didn't expect it would get inlined <span aria-label="scream" class="emoji emoji-1f631" role="img" title="scream">:scream:</span></p>



<a name="230099567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230099567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230099567">(Mar 12 2021 at 21:21)</a>:</h4>
<p>this is all pretty weird :)</p>



<a name="230101007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230101007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230101007">(Mar 12 2021 at 21:31)</a>:</h4>
<p>I suspect that's the other reverse inline thing in action.</p>



<a name="230108763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230108763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tm <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230108763">(Mar 12 2021 at 22:17)</a>:</h4>
<p>The godbolt output seems random. I am adding newlines and seeing different results ...</p>



<a name="230111947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/major%20performance%20regression%20between%20Rust%201.50%20and%20%2383027/near/230111947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/major.20performance.20regression.20between.20Rust.201.2E50.20and.20.2383027.html#230111947">(Mar 12 2021 at 22:45)</a>:</h4>
<p>HA!</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>